home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / glibc108.zip / glibc108 / string / string.h < prev    next >
C/C++ Source or Header  |  1993-12-17  |  7KB  |  187 lines

  1. /* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
  2. This file is part of the GNU C Library.
  3.  
  4. The GNU C Library is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU Library General Public License as
  6. published by the Free Software Foundation; either version 2 of the
  7. License, or (at your option) any later version.
  8.  
  9. The GNU C Library is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12. Library General Public License for more details.
  13.  
  14. You should have received a copy of the GNU Library General Public
  15. License along with the GNU C Library; see the file COPYING.LIB.  If
  16. not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
  17. Cambridge, MA 02139, USA.  */
  18.  
  19. /*
  20.  *    ANSI Standard: 4.11 STRING HANDLING    <string.h>
  21.  */
  22.  
  23. #ifndef    _STRING_H
  24.  
  25. #define    _STRING_H    1
  26. #include <features.h>
  27.  
  28. __BEGIN_DECLS
  29.  
  30. /* Get size_t and NULL from <stddef.h>.  */
  31. #define    __need_size_t
  32. #define    __need_NULL
  33. #include <stddef.h>
  34.  
  35.  
  36. /* Copy N bytes of SRC to DEST.  */
  37. extern __ptr_t memcpy __P ((__ptr_t __dest, __const __ptr_t __src,
  38.                 size_t __n));
  39. /* Copy N bytes of SRC to DEST, guaranteeing
  40.    correct behavior for overlapping strings.  */
  41. extern __ptr_t memmove __P ((__ptr_t __dest, __const __ptr_t __src,
  42.                  size_t __n));
  43.  
  44. /* Copy no more than N bytes of SRC to DEST, stopping when C is found.
  45.    Return the position in DEST one byte past where C was copied,
  46.    or NULL if C was not found in the first N bytes of SRC.  */
  47. extern __ptr_t __memccpy __P ((__ptr_t __dest, __const __ptr_t __src,
  48.                    int __c, size_t __n));
  49. #if defined (__USE_SVID) || defined (__USE_BSD)
  50. extern __ptr_t memccpy __P ((__ptr_t __dest, __const __ptr_t __src,
  51.                  int __c, size_t __n));
  52. #ifdef    __OPTIMIZE__
  53. #define    memccpy(dest, src, c, n) __memccpy((dest), (src), (c), (n))
  54. #endif /* Optimizing.  */
  55. #endif /* SVID.  */
  56.  
  57.  
  58. /* Set N bytes of S to C.  */
  59. extern __ptr_t memset __P ((__ptr_t __s, int __c, size_t __n));
  60.  
  61. /* Compare N bytes of S1 and S2.  */
  62. extern int memcmp __P ((__const __ptr_t __s1, __const __ptr_t __s2,
  63.             size_t __n));
  64.  
  65. /* Search N bytes of S for C.  */
  66. extern __ptr_t memchr __P ((__const __ptr_t __s, int __c, size_t __n));
  67.  
  68.  
  69. /* Copy SRC to DEST.  */
  70. extern char *strcpy __P ((char *__dest, __const char *__src));
  71. /* Copy no more than N characters of SRC to DEST.  */
  72. extern char *strncpy __P ((char *__dest, __const char *__src, size_t __n));
  73.  
  74. /* Append SRC onto DEST.  */
  75. extern char *strcat __P ((char *__dest, __const char *__src));
  76. /* Append no more than N characters from SRC onto DEST.  */
  77. extern char *strncat __P ((char *__dest, __const char *__src, size_t __n));
  78.  
  79. /* Compare S1 and S2.  */
  80. extern int strcmp __P ((__const char *__s1, __const char *__s2));
  81. /* Compare N characters of S1 and S2.  */
  82. extern int strncmp __P ((__const char *__s1, __const char *__s2, size_t __n));
  83.  
  84. /* Compare the collated forms of S1 and S2.  */
  85. extern int strcoll __P ((__const char *__s1, __const char *__s2));
  86. /* Put a transformation of SRC into no more than N bytes of DEST.  */
  87. extern size_t strxfrm __P ((char *__dest, __const char *__src, size_t __n));
  88.  
  89. #if defined (__USE_SVID) || defined (__USE_BSD)
  90. /* Duplicate S, returning an identical malloc'd string.  */
  91. extern char *strdup __P ((__const char *__s));
  92. #endif
  93.  
  94. /* Find the first occurrence of C in S.  */
  95. extern char *strchr __P ((__const char *__s, int __c));
  96. /* Find the last occurrence of C in S.  */
  97. extern char *strrchr __P ((__const char *__s, int __c));
  98.  
  99. /* Return the length of the initial segment of S which
  100.    consists entirely of characters not in REJECT.  */
  101. extern size_t strcspn __P ((__const char *__s, __const char *__reject));
  102. /* Return the length of the initial segment of S which
  103.    consists entirely of characters in ACCEPT.  */
  104. extern size_t strspn __P ((__const char *__s, __const char *__accept));
  105. /* Find the first occurence in S of any character in ACCEPT.  */
  106. extern char *strpbrk __P ((__const char *__s, __const char *__accept));
  107. /* Find the first occurence of NEEDLE in HAYSTACK.  */
  108. extern char *strstr __P ((__const char *__haystack, __const char *__needle));
  109. /* Divide S into tokens separated by characters in DELIM.  */
  110. extern char *strtok __P ((char *__s, __const char *__delim));
  111.  
  112. #ifdef    __USE_GNU
  113. /* Find the first occurence of NEEDLE in HAYSTACK.
  114.    NEEDLE is NEEDLELEN bytes long;
  115.    HAYSTACK is HAYSTACKLEN bytes long.  */
  116. extern __ptr_t memmem __P ((__const __ptr_t __haystack, size_t __haystacklen,
  117.                 __const __ptr_t __needle, size_t __needlelen));
  118. #endif
  119.  
  120. /* Return the length of S.  */
  121. extern size_t strlen __P ((__const char *__s));
  122.  
  123. /* Return a string describing the meaning of the errno code in ERRNUM.  */
  124. extern char *strerror __P ((int __errnum));
  125.  
  126. #ifdef    __USE_BSD
  127. /* Find the first occurrence of C in S (same as strchr).  */
  128. extern char *index __P ((__const char *__s, int __c));
  129.  
  130. /* Find the last occurrence of C in S (same as strrchr).  */
  131. extern char *rindex __P ((__const char *__s, int __c));
  132.  
  133. /* Copy N bytes of SRC to DEST (like memmove, but args reversed).  */
  134. extern void bcopy __P ((__const __ptr_t __src, __ptr_t __dest, size_t __n));
  135.  
  136. /* Set N bytes of S to 0.  */
  137. extern void bzero __P ((__ptr_t __s, size_t __n));
  138.  
  139. /* Compare N bytes of S1 and S2 (same as memcmp).  */
  140. extern int bcmp __P ((__const __ptr_t __s1, __const __ptr_t __s2, size_t __n));
  141.  
  142. /* Return the position of the first bit set in I, or 0 if none are set.
  143.    The least-significant bit is position 1, the most-significant 32.  */
  144. extern int ffs __P ((int __i));
  145.  
  146. /* Compare S1 and S2, ignoring case.  */
  147. extern int strcasecmp __P ((__const char *__s1, __const char *__s2));
  148.  
  149. /* Return the next DELIM-delimited token from *STRINGP,
  150.    terminating it with a '\0', and update *STRINGP to point past it.  */
  151. extern char *strsep __P ((char **__stringp, __const char *__delim));
  152. #endif
  153.  
  154. /* Copy no more than N characters of SRC to DEST, returning the address of
  155.    the last character written into DEST.  */
  156. extern char *__stpncpy __P ((char *__dest, __const char *__src, size_t __n));
  157.  
  158. #ifdef    __USE_GNU
  159. /* Compare no more than N chars of S1 and S2, ignoring case.  */
  160. extern int strncasecmp __P ((__const char *__s1, __const char *__s2,
  161.                  size_t __n));
  162.  
  163. /* Return a string describing the meaning of the signal number in SIG.  */
  164. extern char *strsignal __P ((int __sig));
  165.  
  166. /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
  167. extern char *stpcpy __P ((char *__dest, __const char *__src));
  168.  
  169. /* Copy no more than N characters of SRC to DEST, returning the address of
  170.    the last character written into DEST.  */
  171. extern char *stpncpy __P ((char *__dest, __const char *__src, size_t __n));
  172.  
  173. #ifdef __OPTIMIZE__
  174. #define stpncpy(dest, src, n)    __stpncpy ((dest), (src), (n))
  175. #endif
  176.  
  177. /* Sautee STRING briskly.  */
  178. extern char *strfry __P ((char *__string));
  179.  
  180. /* Frobnicate N bytes of S.  */
  181. extern __ptr_t memfrob __P ((__ptr_t __s, size_t __n));
  182. #endif
  183.  
  184. __END_DECLS
  185.  
  186. #endif /* string.h  */
  187.